今天跟大家分享一個 UDP 於 Linux Kernel 內的 Race Condition 問題。這問題我以前於 Linux Kernel 3.14 也有採過一樣的雷,但是到今日都還沒有一個很漂亮的解決方案,這邊就快速的跟大家介紹一下這個問題是什麼,以及跟 k8s 有什麼關係
# 發生前提
1. 使用 UDP 這種沒有重送機制的協定
2. Kernel 有開啟 conntrack 此功能
# 發生條件
相同的 Client 短時間內透過 UDP (也許是不同 thread) 送出兩個 UDP 封包到外面,對於 Linux Kernel 來說,會希望透過 conntrack 來追蹤每一條連線,但是底層建立的時候會有一些會有一些機制,因此當兩個封包同時進入的時候,有可能就會因為先後順序導致第二個封包被丟棄
# 可能發生問題
DNS 的請求封包預設情況下會同時透過 UDP 送出 A & AAAA 兩個封包,而這兩個封包如果很巧的採到這個情況,然後你的 A 封包就沒有辦法順利解出 DNS,最後就要等五秒的 timeout 來重新發送
下偏這篇文章就是 weave works 遇到 DNS 5秒 timeout 的問題,然後仔細的將我上面所寫的總結給解釋清楚,每一個步驟發生什麼事情,什麼是 conntrack 以及暫時的 workaround 是什麼
之後會在跟大家分享目前一些解決方法怎麼做
https://www.weave.works/blog/racy-conntrack-and-dns-lookup-timeouts
dns lookup 在 趨勢科技 Trend Micro Facebook 的精選貼文
《近期駭客新手法~遮日行動》「遮日行動」採取「以迂為直」攻擊戰術。惡意程式突破傳統手法,不直接向DNS伺服器詢問中繼站網域對應IP,而改為先向網際網路中提供網域查詢(DNS lookup)服務網站連線後,進行網頁查詢以取得中繼站實際位置,成功突破過往依靠防火牆或DNS伺服器阻擋之機制。
dns lookup 在 Reverse DNS Lookups - YouTube 的推薦與評價
In this video, we describe how to perform a reverse DNS lookup.Commands used:nslookup IPdig -x 8.8.8.8The related article for this article ... ... <看更多>
dns lookup 在 dns-lookup · GitHub Topics 的推薦與評價
A high-performance DNS stub resolver for bulk lookups and reconnaissance ... It's a bash script to show a complete DNS lookup of a domain and it might be ... ... <看更多>